import {Aiui} from "../static";
function getProps(dom,props){
    var attrs=dom.attributes;
    var returns = {};
    Aiui.each(props,function(key,item){
        returns[key] = {};
        if(typeof props[key].type === "undefined"){
            returns[key].type = props[key];
            if(returns[key].type==Boolean){
                returns[key].default = false;
            }else if(returns[key].type==Object){
                props[key].default = {};
            }else{
                props[key].default = typeof props[key].default !=="undefined" ? props[key].default : '';
            }
        }else{
            returns[key].type = props[key].type;
            returns[key].default = props[key].default ? props[key].default : '';
        }
        [].slice.call(attrs).forEach(function(attr) {
            var attrName = attr.name.replace(':','');
            try {
                if(key==attrName){
                    if(returns[key].type==Boolean){
                        returns[key].value = true;
                    }else if(returns[key].type==Object){
                        returns[key].value = new Function('return '+attr.nodeValue)();
                    }else{
                        returns[key].value = attr.nodeValue;
                    }
                }   
            } catch (error) {
                aiui.error('Cannot initialize to '+returns[key].type+',value:'+attr.nodeValue);
            }
        })
        if(typeof returns[key].value === "undefined"){
            if(returns[key].type==Boolean){
                returns[key].value = typeof returns[key].default!=="undefined" ? returns[key].default : false;
            }else if(returns[key].type==Object){
                returns[key].value = typeof returns[key].default!=="undefined" ? new Function('return '+returns[key].default)() : {};
            }else{
                returns[key].value = typeof returns[key].default!=="undefined" ? returns[key].default : '';
            }
        }
    })
    return returns;
}
export default getProps;